<template>
  <div class="page_root" :key="queryUpdateFlag" data-page-name="休假申请审批详情页" data-page-identification="h_v9y8nkn9zo">
    <a-spin :spinning="pageLoading.loading" :tip="pageLoading.tip">
      <!-- begin vid_fhnht6xntw 编辑验收标准 -->
      <a-modal
        class="vid_fhnht6xntw"
        v-model:visible="vid_fhnht6xntw_props.visible"
        :centered="true"
        :title="'编辑验收标准'"
        :maskClosable="false"
        @cancel="handle_vid_fhnht6xntw_cancel"
        @ok="handle_vid_fhnht6xntw_ok"
      >
        <!-- begin vid_1441w57u2x 表单容器_y36obwbjm6 -->
        <a-form ref="vid_1441w57u2x_ref" class="vid_1441w57u2x" :model="n_0i786minqv" :formModel="vid_1441w57u2x_props.formModel">
          <!-- begin vid_fmaxjf3b6f 表单项容器_fv424kbub1 -->
          <a-form-item name="r_7zj17ec6x0" :rules="n_0i786minqv_rules[`r_7zj17ec6x0`]" class="vid_fmaxjf3b6f" :label-col='{"span":4}' :wrapper-col='{"span":20}'>
            <!-- begin vid_lhd3lidih6 文本域_zk0j4y64w6 -->
            <a-textarea class="vid_lhd3lidih6" v-model:value="n_0i786minqv.r_7zj17ec6x0" :showCount="true" :maxlength="1000" :placeholder="'请输入验收标准'"> </a-textarea>
            <!-- end vid_lhd3lidih6 文本域_zk0j4y64w6 -->
            <template #label>
              <!-- begin vid_1ohu6c57n3 验收标准 -->
              <span class="vid_1ohu6c57n3"> 验收标准 </span>
              <!-- end vid_1ohu6c57n3 验收标准 -->
            </template>
          </a-form-item>
          <!-- end vid_fmaxjf3b6f 表单项容器_fv424kbub1 -->
        </a-form>
        <!-- end vid_1441w57u2x 表单容器_y36obwbjm6 -->
      </a-modal>
      <!-- end vid_fhnht6xntw 编辑验收标准 -->
      <!-- begin vid_jkc48q5g9z 容器_jiludcjfx3 -->
      <al-box class="vid_jkc48q5g9z">
        <!-- begin vid_y5uhza0hd1 布局容器_9vntyg54c8 -->
        <a-row class="vid_y5uhza0hd1" :slots="'3:9:3:9:3:9:3:9:3:9:3:9'">
          <a-col :span="3">
            <!-- begin vid_ena6dyehrx 容器_71cn8miqyz -->
            <al-box class="vid_ena6dyehrx">
              <!-- begin vid_nf78sccmv5 审批类型 -->
              <span class="vid_nf78sccmv5"> 审批类型 </span>
              <!-- end vid_nf78sccmv5 审批类型 -->
            </al-box>
            <!-- end vid_ena6dyehrx 容器_71cn8miqyz -->
          </a-col>
          <a-col :span="9">
            <!-- begin vid_sg1mrbqmhh 容器_y7osm7mhyj -->
            <al-box class="vid_sg1mrbqmhh">
              <!-- begin vid_buqb1x2cj3 文本 -->
              <span class="vid_buqb1x2cj3"> 文本 </span>
              <!-- end vid_buqb1x2cj3 文本 -->
            </al-box>
            <!-- end vid_sg1mrbqmhh 容器_y7osm7mhyj -->
          </a-col>
          <a-col :span="3">
            <!-- begin vid_9t9aijld0z 容器_gyvj0saas7 -->
            <al-box class="vid_9t9aijld0z">
              <!-- begin vid_061oaxjkdu 工作类型 -->
              <span class="vid_061oaxjkdu"> 工作类型 </span>
              <!-- end vid_061oaxjkdu 工作类型 -->
            </al-box>
            <!-- end vid_9t9aijld0z 容器_gyvj0saas7 -->
          </a-col>
          <a-col :span="9">
            <!-- begin vid_1i8enae13j 容器_da8e4om1h7 -->
            <al-box class="vid_1i8enae13j">
              <!-- begin vid_2y2w73xnq5 简单文本_nfmgpntny2 -->
              <span class="vid_2y2w73xnq5"> 文本 </span>
              <!-- end vid_2y2w73xnq5 简单文本_nfmgpntny2 -->
            </al-box>
            <!-- end vid_1i8enae13j 容器_da8e4om1h7 -->
          </a-col>
          <a-col :span="3">
            <!-- begin vid_inm5mg3m16 容器_84gfs83xqn -->
            <al-box class="vid_inm5mg3m16">
              <!-- begin vid_2o2hc2o5p0 工时 -->
              <span class="vid_2o2hc2o5p0"> 工时 </span>
              <!-- end vid_2o2hc2o5p0 工时 -->
            </al-box>
            <!-- end vid_inm5mg3m16 容器_84gfs83xqn -->
          </a-col>
          <a-col :span="9">
            <!-- begin vid_dub35rhlp1 容器_kxxgovhay7 -->
            <al-box class="vid_dub35rhlp1">
              <!-- begin vid_v4ioxnt5g0 简单文本_e12fnptoga -->
              <span class="vid_v4ioxnt5g0"> 文本 </span>
              <!-- end vid_v4ioxnt5g0 简单文本_e12fnptoga -->
            </al-box>
            <!-- end vid_dub35rhlp1 容器_kxxgovhay7 -->
          </a-col>
          <a-col :span="3">
            <!-- begin vid_dgdewfq970 容器_6ihx5f012v -->
            <al-box class="vid_dgdewfq970">
              <!-- begin vid_sc0004upn0 提交人 -->
              <span class="vid_sc0004upn0"> 提交人 </span>
              <!-- end vid_sc0004upn0 提交人 -->
            </al-box>
            <!-- end vid_dgdewfq970 容器_6ihx5f012v -->
          </a-col>
          <a-col :span="9">
            <!-- begin vid_ljb9f54pj6 容器_g3d6z61jjz -->
            <al-box class="vid_ljb9f54pj6">
              <!-- begin vid_mdbatlh1h3 简单文本_l0pq83cmt3 -->
              <span class="vid_mdbatlh1h3"> 文本 </span>
              <!-- end vid_mdbatlh1h3 简单文本_l0pq83cmt3 -->
            </al-box>
            <!-- end vid_ljb9f54pj6 容器_g3d6z61jjz -->
          </a-col>
          <a-col :span="3">
            <!-- begin vid_npquxp9a8j 容器_six73926qp -->
            <al-box class="vid_npquxp9a8j">
              <!-- begin vid_jkn9nla7bq 休假时间范围 -->
              <span class="vid_jkn9nla7bq"> 休假时间范围 </span>
              <!-- end vid_jkn9nla7bq 休假时间范围 -->
            </al-box>
            <!-- end vid_npquxp9a8j 容器_six73926qp -->
          </a-col>
          <a-col :span="9">
            <!-- begin vid_pt1r3ifdk6 容器_z0inp153re -->
            <al-box class="vid_pt1r3ifdk6">
              <!-- begin vid_rhrn5m9pvz 简单文本_5fyxjoc2em -->
              <span class="vid_rhrn5m9pvz"> 文本 </span>
              <!-- end vid_rhrn5m9pvz 简单文本_5fyxjoc2em -->
            </al-box>
            <!-- end vid_pt1r3ifdk6 容器_z0inp153re -->
          </a-col>
          <a-col :span="3">
            <!-- begin vid_04e3y619bl 容器_3xfvnxmluk -->
            <al-box class="vid_04e3y619bl">
              <!-- begin vid_fe3ka12904 提交审批时间 -->
              <span class="vid_fe3ka12904"> 提交审批时间 </span>
              <!-- end vid_fe3ka12904 提交审批时间 -->
            </al-box>
            <!-- end vid_04e3y619bl 容器_3xfvnxmluk -->
          </a-col>
          <a-col :span="9">
            <!-- begin vid_3x784fqauu 容器_ewrpczsgns -->
            <al-box class="vid_3x784fqauu">
              <!-- begin vid_k80ge98anr 简单文本_9u4o3mgufm -->
              <span class="vid_k80ge98anr"> 文本 </span>
              <!-- end vid_k80ge98anr 简单文本_9u4o3mgufm -->
            </al-box>
            <!-- end vid_3x784fqauu 容器_ewrpczsgns -->
          </a-col>
        </a-row>
        <!-- end vid_y5uhza0hd1 布局容器_9vntyg54c8 -->
      </al-box>
      <!-- end vid_jkc48q5g9z 容器_jiludcjfx3 -->
    </a-spin>
  </div>
</template>
<script setup lang="tsx">
  import {
      h, ref, reactive, toRaw, markRaw, watch, computed,
      onBeforeMount, onMounted, onBeforeUnmount, onUnmounted, onActivated, onDeactivated
    } from "vue";
    import { useRoute, useRouter } from 'vue-router';
    const router = useRouter();
    const route = useRoute();
    import { get, post, put, del, request, requestWithHeaders } from '@/utils/http/Axios';
    import { cloneDeep, localGet, merge, getDifferenceArray, traversalTreeStructure, checkCaseCondition, renderStringInTemplate, handleBreadcrumbJump, throttle, permission, getComponentParamsValue } from '@/utils/index';
    import { isNullOrEmpty, isEmptyArr, isNullOrUnDef, isContained, isArray, isEmpty, isObject } from '@/utils/is';
    import dayjs from 'dayjs';
    import { getPagePcChartsDataSourceConvert } from '@/utils/chart';
    import { message, notification, Modal } from 'ant-design-vue'
    import { propertyFormatByNumber, propertyFormatByPercentage, propertyFormatByDate, parseSubFromDataList } from '@/utils/format';
    import colorTheme from '@/design/custom-theme.json';
    
    import UserTableRecords from '@/model/UserTableRecords';
    import { getAppBaseUrl } from '@/utils/index';
    import { sendToken } from "@/hooks/useIframeToken";
    import { useSystemStore } from "@/store/modules/system";
    const systemStore = useSystemStore();
    



      // 获取传入的流程ID和组件参数
      const props = defineProps({
            'processInstanceId': {
            type: [String,Number,Boolean],
            default: undefined,
        },
      })
      const immediateWatch = (source, callback) => {
        watch(source, callback, {deep: true,immediate: true })
      }



  /* -------------------------- 属性定义 -------------------------- */

      const setTimeOutList = [];
      const pageLoading = reactive({
        loading: false,
        tip: undefined
      });
      const authInfo = localGet('app-user-store');

    const vid_fhnht6xntw_props = reactive({
          visible: false,
      confirmLoading: undefined,
  })

    const vid_1441w57u2x_props = reactive({
          formModel: {"r_7zj17ec6x0":""},
  })

    const vid_lhd3lidih6_props = reactive({
          value: null,
  })
  // ---------------------------- 定义模型数据 ----------------------------

    const n_0i786minqv = reactive({"r_7zj17ec6x0":null})

    // ============================ 定义模型数据 ============================


    const n_0i786minqv_rules = reactive({

    })


      // 处理校验
      const setSubFormName =(parentInfo, name)=>{
        return [parentInfo.parents, parentInfo.cycleIndex, name];
      }


  /* ========================== 属性定义 ========================== */


  /* -------------------------- 元素数据引用 -------------------------- */
  // 组件 表单容器_y36obwbjm6 ref 的引用
  const vid_1441w57u2x_ref = ref(null);

  /* ========================== 元素数据引用 ========================== */


  /* -------------------------- 页面数据 -------------------------- */

    // 页面数据 本周工作进展审批详情
    const dataConnector_conn_5zvrzc2qr1_response = ref();
    const dataConnector_conn_5zvrzc2qr1 = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {

          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/parameter/now-week-evolve/approval/{instanceId}';
          // 替换url中的变量
          url = url.replace('{instanceId}', String(pageParameter_state.processInstanceId))
          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return post(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_5zvrzc2qr1_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


  /* ========================== 页面数据 ========================== */



  /* -------------------------- 响应 -------------------------- */

  /* ========================== 响应 ========================== */


  /* -------------------------- 函数 -------------------------- */

  /* ========================== 函数 ========================== */


  /* -------------------------- 页面参数 -------------------------- */

    const pageParameter_state = reactive({
        'processInstanceId': props.processInstanceId ?? route.query.processInstanceId,
    })

  /* ========================== 页面参数 ========================== */


  /* -------------------------- 组件事件处理方法 -------------------------- */

    // ---------------------------- 组件数据同步 ----------------------------

    // ============================ 组件数据同步 ============================

  /**
  * 处理元素 对话框 的 cancel 事件
  */
  let handle_vid_fhnht6xntw_cancel = throttle(async (...params) => {
  vid_fhnht6xntw_props.visible = false;
  // 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
  try {
  await vid_1441w57u2x_ref.value?.resetFields();
  } catch (error) { console.log(error);}
  }, 500)
  /**
  * 处理元素 对话框 的 ok 事件
  */
  let handle_vid_fhnht6xntw_ok = throttle(async (...params) => {
  vid_fhnht6xntw_props.visible = false;
  // 这里组件可能还未初始化， 这里使用可选链的形式进行函数触发
  try {
  await vid_1441w57u2x_ref.value?.resetFields();
  } catch (error) { console.log(error);}
  }, 500)
  /* ========================== 组件事件处理方法 ========================== */


  /* -------------------------- 生命周期 -------------------------- */
  // 用于参数变更后重新执行自定义指令
      const queryUpdateFlag = ref(0);
      onMounted(() => { ;dataConnector_conn_5zvrzc2qr1()

    });

    onUnmounted(() => {
      // 销毁定时器
      setTimeOutList.forEach(({ repeat, timer }) => {
        repeat ?  clearInterval(timer): clearTimeout(timer);
      });
    });

  /* ========================== 生命周期 ========================== */


  /* -------------------------- 数据关联处理 -------------------------- */





  /* -------------------------- 表单数据同步 -------------------------- */
  /* ========================== 表单数据同步 ========================== */

  /* ========================== 数据关联处理 ========================== */


  /* -------------------------- 不同组件自定义的处理逻辑 -------------------------- */

  /* ========================== 不同组件自定义的处理逻辑 ========================== */


  // ================================定制化逻辑========================================
</script>
<style lang="less" scoped>
  .page_root {
  width: 100%;
  height: 100%;
  overflow: auto;
  }
  .page_root :deep(.@{ant-prefix}-spin-nested-loading),
  .page_root :deep(.@{ant-prefix}-spin-container)
   {
      height: 100%;
  }
  .page_root :deep(.@{ant-prefix}-spin-container .@{ant-prefix}-table-wrapper)
   {
      display: flex;
      flex-flow: column nowrap;
      justify-content: flex-start;
  }
  .page_root :deep(.@{ant-prefix}-table)
   {
    flex: auto;
    overflow: auto;
  }
  .table-moreBtn_down {
    overflow: hidden; white-space: nowrap; text-overflow: ellipsis; width: 100px;
  }

  .table-moreBtn_menu :deep(.table-moreBtn_menu-item):hover {
    background: #ebf1ff;
  }

  /*  表格树结构样式处理，展开按钮层级增加*/
  :deep(.@{ant-prefix}-table-row-expand-icon) {
    z-index: 1;
  }
  /*  表格树结构 由于每个表格项采用自定义组件，使用绝对定位布局，开启树结构导致显示异常，暂时使用层级定位位置 */
  :deep(.@{ant-prefix}-table-row-level-1 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 15px !important;
    width: calc(100% - 15px);
  }
  :deep(.@{ant-prefix}-table-row-level-2 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 30px !important;
    width: calc(100% - 30px);
  }
  :deep(.@{ant-prefix}-table-row-level-3 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 45px !important;
    width: calc(100% - 45px);
  }
  :deep(.@{ant-prefix}-table-row-level-4 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 60px !important;
    width: calc(100% - 60px);
  }

  /* 穿梭框改变默认样式，为根据组件样式控制左右栏宽度。 */
  :deep(.@{ant-prefix}-transfer-list)
   {
      height: 100%;
      width: 50%;
  }
  .vid_lhd3lidih6{
      height:120px;
      overflow-x:visible;
      overflow-y:visible
  }
  .vid_jkc48q5g9z{
      display:block;
      padding-top:16px;
      padding-right:24px;
      padding-bottom:16px;
      padding-left:24px;
      background-color:#FFFFFF;
      box-shadow:0px 0px 0px 0px
  }
  .vid_y5uhza0hd1{
      background-color:#FFFFFF
  }
  .vid_dub35rhlp1{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      flex-wrap:wrap;
      padding-left:8px;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_v4ioxnt5g0{
      font-weight:500
  }
  .vid_inm5mg3m16{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex-wrap:undefined;
      padding-right:8px;
      background-color:rgba(250, 250, 250, 1);
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_2o2hc2o5p0{
      box-shadow:0px 0px 0px 0px
  }
  .vid_1i8enae13j{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      flex-wrap:wrap;
      padding-left:8px;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_2y2w73xnq5{
      font-weight:500
  }
  .vid_9t9aijld0z{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex-wrap:undefined;
      padding-right:8px;
      background-color:rgba(250, 250, 250, 1);
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_sg1mrbqmhh{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      flex-wrap:wrap;
      padding-left:8px;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_buqb1x2cj3{
      font-weight:500
  }
  .vid_ena6dyehrx{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex-wrap:undefined;
      padding-right:8px;
      background-color:#FAFAFA;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_pt1r3ifdk6{
      height:40px;
      overflow-y:auto;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      flex-wrap:wrap;
      padding-left:8px;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_rhrn5m9pvz{
      font-weight:500
  }
  .vid_npquxp9a8j{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex-wrap:undefined;
      padding-right:8px;
      background-color:#FAFAFA;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_ljb9f54pj6{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      flex-wrap:wrap;
      padding-left:8px;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_mdbatlh1h3{
      font-weight:500
  }
  .vid_dgdewfq970{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex-wrap:undefined;
      padding-right:8px;
      background-color:rgba(250, 250, 250, 1);
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_04e3y619bl{
      height:40px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      flex-wrap:undefined;
      padding-right:8px;
      background-color:#FAFAFA;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_fe3ka12904{
      box-shadow:0px 0px 0px 0px
  }
  .vid_3x784fqauu{
      height:40px;
      overflow-y:auto;
      display:flex;
      align-items:center;
      justify-content:flex-start;
      flex-wrap:wrap;
      padding-left:8px;
      border-style:solid;
      border-width:1px;
      border-color:#D9D9D9
  }
  .vid_k80ge98anr{
      font-weight:500
  }
</style>